﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Burraco.Library
{
    public class TavoloDa4 : ITavolo
    {
	    public enum Posizione { NS, EW }
	
	    private long NumeroTavolo { get; set; }
	    private Coppia[] coppia = new Coppia[2];
	
	    public TavoloDa4() {
	    }
	
	    public TavoloDa4(long numeroTavolo) {
		    NumeroTavolo = numeroTavolo;
	    }
	
	    public TavoloDa4(Coppia c1, Coppia c2) {
		    coppia[0] = c1;
		    coppia[1] = c2;
	    }
	
	    public TavoloDa4(Coppia c1, Coppia c2, long numeroTavolo) {
		    NumeroTavolo = numeroTavolo;
		    coppia[0] = c1;
		    coppia[1] = c2;
	    }
	
	/*
	public Coppia getCoppia(posizione p) {
		if (p == posizione.EW) return coppiaEW;
		if (p == posizione.NS) return coppiaNS;
		else return null;
	}
	*/
	    public Coppia getCoppia(int index) {
		    if (index >=1 && index <=2) return coppia[index-1];
		    else return null;
	    }
	
	
	    public bool sonoAvversari(Giocatore g1, Giocatore g2) 
        {
		    Coppia c1 = this.getCoppia(1), c2 = this.getCoppia(2);
		
		    bool blnAvversari = false; 
		    blnAvversari = blnAvversari || ( ( (c1.getGiocatore(1) == g1) || (c1.getGiocatore(2) == g1) ) && ( (c2.getGiocatore(1) == g2) || (c2.getGiocatore(2) == g2) ));
		    blnAvversari = blnAvversari || ( ( (c1.getGiocatore(1) == g2) || (c1.getGiocatore(2) == g2) ) && ( (c2.getGiocatore(1) == g1) || (c2.getGiocatore(2) == g1) ));
		    return blnAvversari;
	    }
	
	    public bool sonoEntrambiAlTavolo(Giocatore g1, Giocatore g2) {
		    bool g1AlTavolo, g2AlTavolo;
		    Coppia c1 = this.getCoppia(1), c2 = this.getCoppia(2);
		
		    g1AlTavolo = c1.getGiocatore(1) == g1 || c1.getGiocatore(2) == g1 || c2.getGiocatore(1) == g1 || c2.getGiocatore(2) == g1;
		    g2AlTavolo = c1.getGiocatore(1) == g2 || c1.getGiocatore(2) == g2 || c2.getGiocatore(1) == g2 || c2.getGiocatore(2) == g2;
		
		    return g1AlTavolo && g2AlTavolo;
	    }

	    public String getNomiGiocatori() {
		    return coppia[0].NomiCoppia + "\t> VS <\t" + coppia[1].NomiCoppia;
	    }
    }
}
